[SVM] Clear VMCB's EFER.LME when guest disables paging
authorTravis Betak <travis.betak@amd.com>
Mon, 5 Mar 2007 22:22:21 +0000 (16:22 -0600)
committerTravis Betak <travis.betak@amd.com>
Mon, 5 Mar 2007 22:22:21 +0000 (16:22 -0600)
Since the guest's CR0.PG is always set (in shadow paging), EFER.LME must
be cleared along with EFER.LMA when the guest is disabling paging.

Signed-off-by: Travis Betak <travis.betak@amd.com>
xen/arch/x86/hvm/svm/svm.c

index 01d7a41d2f165810b6f5d4fdfe9c779a1eb11602..40910395e0bb5973c5a2271c2884f9d36f2507a2 100644 (file)
@@ -1787,7 +1787,7 @@ static int svm_set_cr0(unsigned long value)
     {
         if ( svm_long_mode_enabled(v) )
         {
-            vmcb->efer &= ~EFER_LMA;
+            vmcb->efer &= ~(EFER_LME | EFER_LMA);
             v->arch.hvm_svm.cpu_shadow_efer &= ~EFER_LMA;
         }
         /* we should take care of this kind of situation */